////////////////////////////////////////////////////////////////////////////////
// Filename: beziercurve.h
////////////////////////////////////////////////////////////////////////////////
#ifndef _BEZIERCURVE_H_
#define _BEZIERCURVE_H_


//////////////
// INCLUDES //
//////////////
#include <d3dx10math.h>



////////////////////////////////////////////////////////////////////////////////
// Class name: Beziercurve
////////////////////////////////////////////////////////////////////////////////
class Beziercurve
{
public:
	Beziercurve();
	~Beziercurve();
	bool initialize(int pointcount, int steps);
	bool addPoint(D3DXVECTOR3);
	D3DXVECTOR3 getPosition(float t);
	D3DXVECTOR3 getNextPosition();
	void rotateX(float radians);
	void rotateY(float radians);
	void rotateZ(float radians);
private:
	int listsize;
	int beziersteps;
	float currentstep;
	int numElements;
	D3DXVECTOR3* points;
	float bin(long int n, long int k);
};

#endif